package mapper;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import controlador.Tragamonedas;

public class AdmPersistenciaTragamonedas extends AdmPersistencia<Tragamonedas> {
	
	private static AdmPersistenciaTragamonedas instancia;
	
	private AdmPersistenciaTragamonedas()
	{
		
	}
	public static AdmPersistenciaTragamonedas getInstancia()
	{
		if (instancia == null)
			instancia = new AdmPersistenciaTragamonedas();
		return instancia;
	}


	@Override
	public void insertar(Tragamonedas a) {
		// TODO Auto-generated method stub
		try
		{
			Connection con = PoolConnection.getPoolConnection().getConnection();
			PreparedStatement s = con.prepareStatement("insert into dbo.Tragamonedas values (?,?,?,?)");
			//agregar campos
			s.setInt(1,(int) a.getId());
			s.setFloat(2, a.getRecaudacionInicial());
			s.setFloat(3,a.getRecaudacionActual());
			s.setFloat(4, a.getRecaudacionMinima());
			s.execute();
			PoolConnection.getPoolConnection().realeaseConnection(con);
		}
		catch (Exception e)
		{
			System.out.println();
		}

	}

	@Override
	public void actualizar(Tragamonedas a) {
		// TODO Auto-generated method stub
		try
		{
			Connection con = PoolConnection.getPoolConnection().getConnection();
			PreparedStatement s = con.prepareStatement("update dbo.Tragamonedas " +
					"set recaudacionInicial = ?," +
					"recaudacionActual =?," +
					"recaudacionMinima =? where id_tragamonedas = ?");
			//agregar campos
			s.setFloat(1, a.getRecaudacionInicial());
			s.setFloat(2,a.getRecaudacionActual());
			s.setFloat(3, a.getRecaudacionMinima());
			s.setLong(4, a.getId());
			s.execute();
			PoolConnection.getPoolConnection().realeaseConnection(con);
		}
		catch (Exception e)
		{
			System.out.println();
		}
	}

	@Override
	public void borrar(Tragamonedas a) {
		// TODO Auto-generated method stub
		try
		{
			Connection con = PoolConnection.getPoolConnection().getConnection();
			PreparedStatement s = con.prepareStatement("delete from dbo.Tragamonedas where id_tragamonedas = ?");
			s.setInt(1, (int) a.getId());
			s.execute();
			PoolConnection.getPoolConnection().realeaseConnection(con);
		}
		catch (Exception e)
		{
			System.out.println();
		}
		
	}
	
	public void existeTragamonedas() {
		boolean flag;
		try
		{
			flag = false;
			Connection con = PoolConnection.getPoolConnection().getConnection();
			PreparedStatement s = con.prepareStatement("select recaudacionInicial, recaudacionActual, recaudacionMinima from dbo.Tragamonedas where id_tragamonedas = 1");			//agregar campos
			ResultSet result = s.executeQuery();
			while (result.next())
			{
				flag = true;
				
				Tragamonedas.getInstancia().setRecaudacionActual(result.getFloat(1));
				Tragamonedas.getInstancia().setRecaudacionInicial(result.getFloat(2));
				Tragamonedas.getInstancia().setRecaudacionMinima(result.getFloat(3));
				
		//		float recaudacionInicial = result.getFloat(1);
		//		float recaudacionActual = result.getFloat(2);
		//		float recaudacionMinima = result.getFloat(3);
				
				//Rodillos
		//		ArrayList<Rodillo> rodillos =AdmPersistenciaRodillo.getInstancia().seleccionar(Tragamonedas.getInstance().getId());
		//		PreparedStatement s = con.prepareStatement("select recaudacionInicial, recaudacionActual, recaudacionMinima from dbo.Tragamonedas where id_tragamonedas = ?");			//agregar campos
		//		s.setLong(1,id);
		//		ResultSet result = s.executeQuery();
				//Casillas
				
				//Premios
				
				//Jugadas
				
				
			//	a = new Tragamonedas(id, recaudacionInicial, recaudacionActual, recaudacionMinima);
			}
			
			PoolConnection.getPoolConnection().realeaseConnection(con);
			//return flag;
		}
		catch (Exception e)
		{
			System.out.println();
		}
	// false;
	}
	
	@Override
	public ArrayList<Tragamonedas> seleccionar(long id) {
		// TODO Auto-generated method stub
		return null;
	}
	
	@Override
	public Tragamonedas buscar(long id) {
		// TODO Auto-generated method stub
		return null;
	}
	


}
